Manual: `F0af`_`[Discovering Interfaces ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/using.md|anchor=discovering-interfaces]`_`f, `F0af`_`[Discoverable Interfaces ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/interfaces.md|anchor=discoverable-interfaces]`_`f
`!Discovery`! allows `F0af`_`[nodes`:/page/wiki.mu`path=Node]`_`f to automatically discover and connect to available `F0af`_`[interfaces`:/page/wiki.mu`path=Interface]`_`f of other nodes. This enables decentralized networks where peers can dynamically find entry points without static configurations or centralized directories.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]
To enable interface discovery in `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f, set `B100`F9d9discover_interfaces = true`f`b.
To make an interface `F0af`_`[discoverable`:/page/wiki.mu`path=Interface|anchor=discoverable]`_`f, set `B100`F9d9discoverable = yes`f`b in its definition.
>>Contents
• `F0af`_`[Auto-connect`#auto-connect]`_`f
• `F0af`_`[Bootstrapping`#bootstrapping]`_`f
• `F0af`_`[Configuration`#configuration]`_`f
• `F0af`_`[Related`#related]`_`f
• `F0af`_`[See also`#see-also]`_`f
• `F0af`_`[References`#references]`_`f
>>Auto-connect
To auto-connect to discovered interfaces, set `B100`F9d9autoconnect_discovered_interfaces`f`b to a number greater than `B100`F9d90`f`b. This can be used alone or as part of a `F0af`_`[bootstrap`#bootstrapping]`_`f setup. `F0af`_`[Configuration options`#configuration]`_`f allow fine-tuning of auto-connected interfaces.
>>>Bootstrapping
Reticulum encourages organic growth by allowing interfaces to act as temporary bootstrap connections, discovering and auto-connecting to more suitable connections before disconnecting themselves. This helps build a more efficient network topology that favors locality and resilience.`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]
To set up bootstrapping in `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f:
1. Make sure interface discovery and auto-connection are both enabled in the `F0af`_`[configuration`:/page/wiki.mu`path=RNS|anchor=configuration]`_`f file, with `B100`F9d9discover_interfaces = true`f`b and `B100`F9d9autoconnect_discovered_interfaces`f`b set to a number greater than `B100`F9d90`f`b.
2. Add one or more public interfaces to the configuration, which can be found on websites like directory.rns.recipes and rmap.world.
3. Add `B100`F9d9bootstrap_only = true`f`b to the definitions.
4. Restart `B100`F9d9rnsd`f`b for the configuration changes to take effect.
5. Run `B100`F9d9rnstatus`f`b to see which interfaces are connected, and `B100`F9d9rnstatus --discovered`f`b to see which interfaces have been discovered.
>>Configuration
In `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f, the following configuration options can be used to fine-tune interface discovery and auto-connection:
• `B100`F9d9interface_discovery_sources`f`b – A whitelist of `F0af`_`[identities`:/page/wiki.mu`path=Identity]`_`f (can be `F0af`_`[network identities`:/page/wiki.mu`path=Network_identity]`_`f) from which interfaces will be accepted (defaults to accepting interfaces from any source).
• `B100`F9d9required_discovery_value`f`b – Minimum `F0af`_`[stamp`:/page/wiki.mu`path=Stamp]`_`f value required for a discovered interface to be accepted (defaults to `B100`F9d90`f`b).
• `B100`F9d9autoconnect_discovered_interfaces`f`b – Max number of discovered interfaces that should be auto-connected (defaults to `B100`F9d90`f`b).
• `B100`F9d9autoconnect_interface_mode`f`b – The `F0af`_`[mode`:/page/wiki.mu`path=Interface|anchor=modes]`_`f to apply to auto-connected interfaces.
• `B100`F9d9autoconnect_interface_gravity`f`b – The `F0af`_`[gravity`:/page/wiki.mu`path=Interface|anchor=gravity]`_`f to apply to auto-connected interfaces.
• `B100`F9d9autoconnect_announces_to_internal`f`b – Same as `B100`F9d9`F0af`_`[announces_to_internal`:/page/wiki.mu`path=Interface|anchor=announce-propagation]`_`f`f`b, applied to auto-connected interfaces.
>>>Related
• `B100`F9d9network_identity`f`b – A `F0af`_`[network identity`:/page/wiki.mu`path=Network_identity]`_`f can decrypt incoming interface discovery `F0af`_`[announces`:/page/wiki.mu`path=Announce]`_`f that have been signed/encrypted with the same network identity. Used with `B100`F9d9interface_discovery_sources`f`b, this allows you to only discover and auto-connect to interfaces belonging to a particular network.
>>See also
• `F0af`_`[Stamp`:/page/wiki.mu`path=Stamp]`_`f
• `F0af`_`[Network identity`:/page/wiki.mu`path=Network_identity]`_`f
• `F0af`_`[Interface › Discoverable`:/page/wiki.mu`path=Interface|anchor=discoverable]`_`f
• `F0af`_`[rnstatus`:/page/wiki.mu`path=Rnstatus]`_`f
>>References
`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f `*Discoverable Interfaces`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/interfaces.md|anchor=discoverable-interfaces] ↗`_`f
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `*Bootstrapping Connectivity`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/gettingstartedfast.md|anchor=bootstrapping-connectivity] ↗`_`f
>>Reticulum concepts
`F0af`_`[Announce`:/page/wiki.mu`path=Announce]`_`f • `F0af`_`[Blackhole`:/page/wiki.mu`path=Blackhole]`_`f • `F0af`_`[Buffer`:/page/wiki.mu`path=Buffer]`_`f • `F0af`_`[Channel`:/page/wiki.mu`path=Channel]`_`f • `F0af`_`[Destination`:/page/wiki.mu`path=Destination]`_`f • Discovery • `F0af`_`[Identity`:/page/wiki.mu`path=Identity]`_`f • `F0af`_`[Instance`:/page/wiki.mu`path=Instance]`_`f • `F0af`_`[Interface`:/page/wiki.mu`path=Interface]`_`f • `F0af`_`[Interface Access Code`:/page/wiki.mu`path=Interface_Access_Code]`_`f (IFAC) • `F0af`_`[Link`:/page/wiki.mu`path=Link]`_`f • `F0af`_`[Network identity`:/page/wiki.mu`path=Network_identity]`_`f • `F0af`_`[Node`:/page/wiki.mu`path=Node]`_`f • `F0af`_`[Packet`:/page/wiki.mu`path=Packet]`_`f • `F0af`_`[Path`:/page/wiki.mu`path=Path]`_`f • `F0af`_`[Propagation node`:/page/wiki.mu`path=Propagation_node]`_`f • `F0af`_`[Resource`:/page/wiki.mu`path=Resource]`_`f • `F0af`_`[Stamp`:/page/wiki.mu`path=Stamp]`_`f • `F0af`_`[Transport node`:/page/wiki.mu`path=Transport_node]`_`f
>>Discovery
`!Source:`! `F0af`_`[Discovery.py ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=RNS/Discovery.py]`_`f